Дослідження похибки інтерполяції функцій многочленом Ньютона

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Інші

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” / Лабораторна робота №4 Тема: «Дослідження похибки інтерполяції функцій многочленом Ньютона» Завдання: Для функції  заданої на рівномірній сітці в точках  на інтервалі  знайти аналітичний вираз залишкового члена інтерполяційного многочлена; обчислити його максимальне значення і значення в точках ; побудувати інтерполяційний многочлен Ньютона через розділені різниці; обчислити похибки інтерполяції у точках  і порівняти їх із значеннями залишкового члена. N      18  3 0 2   Короткі теоретичні відомості Замінюючи функцію  інтерполяційним многочленом , ми припускаємо похибку , яка називається похибкою інтерполяції або, що те ж саме, залишковим членом інтерполяційної формули. Ясно, що у вузлах інтерполяції ця похибка дорівнює нулю. Похибку інтерполяції можна подати у вигляді , де  і залежить від x. Звідси випливає оцінка , де , . 1. і 2. Знаходження аналітичного виразу залишкового члена інтерполяційного многочлена і обчислення його максимального значення і значення в точках  за допомогою пакету Maple 12. > / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / / > / 3. і 4. Побудова інтерполяційного многочлена Ньютона і обчислення похибок інтерполяції в точках  за допомогою мови програмування С++. Код програми: #include <iostream.h> #include <math.h> #define k 4 const double X[k] = {0.000, 0.666, 1.333, 2.0}; const double x1 = 0.233, x2 = 1.109, x3 = 1.894; double Rozd_Rizn[k]; double F[k]; void Calc_Rozd_Rizn(); double Calc_Func(double); double f(double); void main() { for(int i = 0; i < k; i++) F[i] = f(X[i]); cout<<" x\t F(x)\n"; for(i = 0; i < k; i++) cout<<X[i]<<"\t"<<F[i]<<endl; cout<<"\nx1 = "<<x1<<endl <<"x2 = "<<x2<<endl <<"x3 = "<<x3<<endl; Calc_Rozd_Rizn(); //for(i = 0; i < k; i++) // cout<<Rozd_Rizn[i]<<endl; cout<<endl; cout<<"Rn(x1) = "<<fabs(f(x1) - Calc_Func(x1))<<endl <<"Rn(x2) = "<<fabs(f(x2) - Calc_Func(x2))<<endl <<"Rn(x3) = "<<fabs(f(x3) - Calc_Func(x3))<<endl; } void Calc_Rozd_Rizn() { for(int i = 0; i < k; i++) { Rozd_Rizn[i] = 0; for(int j = 0; j < i + 1; j++) { double temp = 1; for(int l = 0; l < i + 1; l++) if(l != j) temp = temp * (X[j] - X[l]); Rozd_Rizn[i] += F[j] / temp; } } } double Calc_Func(double x) { double Ln = 0; for(int i = 1; i < k + 1; i++) Ln = (x - X[k - i]) * Ln + Rozd_Rizn[k - i]; return Ln; } double f(double x) { double func = 2 * log(x + 2); return func; } Результат виконання програми: / Висновок: В процесі виконання даної лабораторної роботи я дослідив похибки інтерполяції функції многочленом Ньютона. Їх значення і значення залишкового члена у точках  дещо відрізняються, проте похибки все-одно менші за максимальне значення залишкового члена обчислене в Maple.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!